Automatically converting a textual data prompt embedded within a graphical user interface (gui) to a widget

ABSTRACT

A server and method for converting a textual data prompt embedded within a graphical user interface (GUI) to a widget. Parameters of a textual data prompt, which was previously received from a first computing device, are compared to additional parameters associated with widget. A first match and a second match between the parameters and the additional parameters associated with a first widget and a second widget, respectively, of the widgets is identified. In response to determining that a percentage of the first match exceeds a confidence threshold and a percentage of the second match fails to exceed the confidence threshold, the first widget embedded within the GUI on a second computing device is generated. A first response to the textual data prompt by a user associated with the second computing device is received. The first response is displayed as textual data embedded within the GUI of the first computing device.

This application is a continuation application claiming priority to Ser.No. 15/982,037, filed May 17, 2018.

TECHNICAL FIELD

The present invention relates to automatically converting a textual dataprompt embedded within a GUI to a widget.

BACKGROUND

Numerous computing devices include applications that provide graphicaluser interfaces (GUIs), allowing for interaction with users. Someapplications, such as chat applications, require users to manually inputtext or select multimedia images as responses to inquiries from otherusers. However, this can be time-consuming and frustrating for users whowish to reply similarly as they have in the past or for users who wishto utilize a generic reply to the inquiry.

SUMMARY

In embodiments, the present invention provides a server, a method, and acomputer program product configured to execute a method forautomatically converting a textual data prompt embedded within agraphical user interface (GUI) to a widget. The method comprises:receiving, from a first computing device, the textual data prompt;parsing the textual data prompt to identify parameters that include atleast a topic of the textual data prompt and an intent associated withthe textual data prompt; executing an algorithm to compare theparameters of the textual data prompt to additional parametersassociated with widgets; identifying a first match between theparameters and the additional parameters associated with a first widgetof the widgets; and identifying a second match between the parametersand the additional parameters associated with a second widget of thewidgets. In response to determining that a percentage of the first matchexceeds a confidence threshold and a percentage of the second matchfails to exceed the confidence threshold, the method further includes:generating the first widget embedded within the GUI on a secondcomputing device. The first widget includes a first response to thetextual data prompt and a second response to the textual data prompt.Also, a size, a shape, and a color of the first widget is based on theconfidence threshold. The method further comprises: receiving aselection of the first response as a selected response to the textualdata prompt by a user associated with the second computing device; anddisplaying the first response as textual data embedded within the firstcomputing device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system configured to automaticallyconvert a textual data prompt embedded within a GUI to a widget, inaccordance with embodiments of the present invention.

FIG. 2A illustrates a schematic diagram including a textual data promptbeing input by a first user on a first computing device, in accordancewith embodiments of the present invention.

FIG. 2B illustrates a schematic diagram showcasing generation of a firstwidget embedded with a graphical user interface (GUI) on a secondcomputing device, in accordance with embodiments of the presentinvention.

FIG. 2C illustrates a schematic diagram include display of a firstresponse as textual data embedded with a graphical user interface (GUI)on a first computing device, in accordance with embodiments of thepresent invention.

FIG. 3 is a flowchart of a process executed by a server to automaticallyconvert a textual data prompt embedded within a GUI to a widget, inaccordance with embodiments of the present invention.

FIG. 4 is a block diagram of a computing device included within thesystem of FIG. 1 and that implements the processes of FIG. 3, inaccordance with embodiments of the present invention.

DETAILED DESCRIPTION

Users consistently interact with computing devices via graphical userinterfaces (GUIs). It becomes inconvenient and time-consuming for asecond user to manually input text as a response to a first user'sinquiry. Instead of inputting textual information in response to aninquiry, it would be convenient for a second user to interact with anaccurately-generated widget to respond to pending questions or promptsfrom a first user, whereby the response of the second user isautomatically converted, in real-time, into a textual response, seen bythe first user. However, current solutions fail to provide for such asystem. Embodiments of the present invention provide a cognitiveanalysis server, a cognitive analysis engine, a proxy server, or acognitive analysis system which may, in-real time, automatically converta textual data prompt embedded within a GUI on a computing deviceassociated with a first user to a widget embedded within the GUI on acomputing device associated with a second user.

The current invention improves the functioning of the computer itself byproviding enhanced accuracy and confidence in the real-time generatedwidget since the widget is only generated responsive to a match (betweenparameters of the textual data prompt and additional parametersassociated with a widget) that exceeds a confidence threshold. Further,since a size, a shape, and a color of the generated widget is based onthe confidence threshold, a larger widget having light-coloring and morerounded/smooth sides than edges conveys a greater confidence andaccuracy in the match to a user viewing the widget, as compared to adarker-colored widget having a smaller size and more edges than smoothor rounded sides. Based on enhanced accuracy of the generated widget(conveyed via the large size, light-coloring, and more rounded or smoothsides than edges), the user may select a response contained within thewidget, in response to the textual data prompt. Based on the decreasedaccuracy associated with the generated widget (conveyed via the smallsize, dark-coloring, and more edges than smooth or round sides), theuser may input textual data into the GUI directly.

FIG. 1 is a block diagram of a system configured to automaticallyconvert a textual data prompt embedded within a GUI to a widget, inaccordance with embodiments of the present invention.

A block diagram of the system 100 may include a first computing device102 associated with a first user 120 and a second computing device 103associated with a second user 122. The first computing device 102 andthe second computing device 103 may comprise a laptop computer, asmartphone, a desktop computer, or a tablet computer, among others. Thefirst computing device 102 and the second computing device 104 may eachinclude a graphical user interface (GUI) 104.

The first user 120 and the second user 122 may interact with the GUI 104of the first computing device 102 and the second computing device 103,respectively, via a device. The device may include: a stylus pen, amouse, or a finger of the user, among other examples. In some examples,the first user 120 may utilize the device on the GUI of the firstcomputing device 102 to: add, modify, or delete content (e.g., textualcontent, audio content, and/or graphical content) associated with thetextual data prompt 108.

The first computing device 102 may communicate via a proxy server 110with the second computing device 103. The proxy server 110 may includenumerous engines/modules, such as a cognitive analysis engine 112 and/ora storage engine 119, among others. In an example, the proxy server 110may receive, from the first computing device 102, a textual data prompt108. The textual data prompt 108 may include one or more: words,sentences, paragraphs, or pages of textual data. In some examples, thetextual data prompt 108 may include sentences in the form of questions.

Next, the proxy server 110 may parse the textual data prompt 108 toidentify parameters. The parameters include at least a topic of thetextual data prompt 108 and an intent associated with the textual dataprompt 108. In some examples, the parameters may additionally include:keywords of the textual data prompt 108 (e.g., “very satisfied,”“satisfied,” “normal,” “dislike,” etc.), interrogative words associatedwith the textual data prompt 108 (e.g., “what,” “when,” “where,” “who,”“whom,” “why,” and “how”), a sender of the textual data prompt 108(e.g., the first user 120), and/or a recipient of the textual dataprompt 108 (e.g., the second user 122), among others. The parameters mayalso include adjectives associated with the keywords, verbs associatedwith the keywords, and nouns associated with the keywords. The sender ofthe textual data prompt 108 and the recipient of the textual data prompt108 may include individuals and/or entities.

Next, the proxy server 110 may execute an algorithm to compare theparameters of the textual data prompt 108 to additional parametersassociated with widgets. In some examples, the algorithm performs aone-on-one comparison of the parameters associated with the textual dataprompt 108 to the additional parameters associated with the widgets. Inadditional examples, the algorithm may include: a pattern matchingalgorithm, a linguistic algorithm, and/or a reinforcement learningalgorithm, and combinations thereof.

A widget is an element that the first user 120 or the second user 122may interact with on the GUI 104, where each widget facilitates aspecific type of user-computer interaction, and appears as a visiblepart of the application's GUI 104 as defined by the theme and renderedby the rendering engine. Examples of the widgets include a button widget(e.g., a radio button widget, a check box widget, a split button widget,a cycle button widget, etc.), a slider widget, a list box widget, aspinner widget, a drop-down list widget, a menu widget (e.g., a contextmenu widget, a pie menu widget, etc.), a menu bar widget, a scroll barwidget, a toolbar widget (e.g., a ribbon widget), an icon widget, and/ora tree view widget, among others. Further examples of the widgetscontemplated in the instant invention include: a date selection widget,a response selection widget, a time selection widget, and/or a locationselection widget, among others. In some examples, the widgets may bestored in a database or a server. In other examples, the widgets may bestored in the storage engine 119 of the proxy server 110.

Then, the proxy server 110 may identify a first match between theparameters associated with the textual data prompt 108 and theadditional parameters associated with a first widget 118 of the widgets(e.g., the location selection widget). The proxy server 110 may furtheridentify a second match between the parameters associated with thetextual data prompt 108 and the additional parameters associated with asecond widget of the widgets (e.g., the time selection widget).

In some examples, a confidence threshold may be applied to the firstmatch and the second match. In some examples, if the first match exceedsthe confidence threshold and the second match fails to exceed theconfidence threshold, the proxy server 110 may generate the first widget118 (e.g., the location selection widget) embedded within the GUI 104 onthe second computing device 103. In other examples, a confidence score(e.g., the confidence threshold) may be applied to the first match andthe second match. The confidence score for the first match and thesecond match may be in a range of zero to one. For example, if theconfidence score of the first match is 0.7, or 70%, and the confidencescore of the second match is 0.4, or 40%, the first match achieves ahigher confidence score. Responsive to this determination, the proxyserver 110 may generate the first widget 118 (e.g., the locationselection widget) embedded within the GUI 104 on the second computingdevice 103. In some examples, the first widget 118 is generated inreal-time.

According to some examples, a size, a shape, and a color of the firstwidget is based on the confidence threshold. In this illustrativeexample, the first widget (e.g., the location selection widget) mayinclude at least two responses to the textual data prompt 108. Inexamples, the first widget (e.g., the location selection widget) mayinclude at least a first response to the textual data prompt 108 (e.g.,100 Main Street) and a second response to the textual data prompt 108(e.g., 120 Main Street). It should be appreciated that in otherexamples, the first widget may include multiple responses to the textualdata prompt 108.

Moreover, in some examples, the proxy server 110 may receive a selectionof the first response (e.g., 100 Main Street) as a selected response tothe textual data prompt 108 by the second user 122 associated with thesecond computing device 103. In response, the proxy server 110 maydisplay the first response (e.g., 100 Main Street) as textual data 109embedded within the GUI of the first computing device 102. A size and acolor of the textual data mirrors or is identical to the size and colorof the first widget.

The functionality of the components shown in FIG. 1 is described in moredetail in the discussion of FIG. 2A, FIG. 2B, FIG. 2C, FIG. 3, and FIG.4 presented below.

FIG. 2A illustrates a schematic diagram including a textual data promptbeing input by a first user on a first computing device, in accordancewith embodiments of the present invention.

A schematic diagram 200A displays a first computing device 102associated with a first user 220. The first user 220 may interact with agraphical user interface (GUI) 104 of the first computing device 102 viaa device. In an illustrative example, the first user 220 may utilize thedevice on a keyboard 210 to input, modify, or delete audio, graphical,or video content. The keyboard 210 is a set of keys that enables thefirst user 220 to enter content into the first computing device 102. Thekeyboard 210 may include alphanumeric keys, punctuation keys, and/orspecial keys, among others. In some examples, the first user 220 mayutilize the device on the keyboard 210 to add textual content 204 to apane 206 embedded within the GUI 104 of the first computing device 102.

In the given illustration, the first user 220 may input, via the device,the textual content 204 including “Do you want to go swimming or playbasketball” into the pane 206. The first user 220 may additionallytransmit this textual content 204 to a second user 222 by executing anaction (e.g., such as a clicking action) on a send button 208.Responsive to this action, the proxy server 110 (of FIG. 1) may receivethe textual data prompt 108 (of FIG. 1) and may then parse the textualdata prompt 108 to identify parameters that include at least a topic ofthe textual data prompt 108 and an intent associated with the textualdata prompt 108.

The proxy server 110 may further utilize one or more algorithms, such asa linguistic processing algorithm, to identify the topic and the intentassociated with the textual data prompt 108. For example, the intent maybe a positive, a neutral, or a negative intent. The topic of the textualdata prompt 108 may vary and may include multiple topics and subjects,including: the weather, a job interview, a music festival, a basketballgame, etc. In this illustrative example, the intent is a neutral intent(as the first user 220 is merely asking the second user 222 of whichactivity the second user 222 would like to engage in) and the topicincludes exercise (as the two choices of activities include two sports:swimming and basketball).

In other examples, the textual data prompt 108 could convey a positiveintent (e.g., “I can't wait to play basketball with you today”) or couldconvey a negative intent (e.g., “I can't believe you aren't available toplay basketball today”). In further examples, the proxy server 110 mayidentify additional parameters associated with the textual data prompt108, such as keywords (e.g., “swimming” and “basketball”), interrogativewords (e.g., “what”), a sender (e.g., the first user 220), and arecipient (e.g., the second user 222) topic of the textual data prompt108. Next, the proxy server 110 may execute the same algorithm(s) oradditional algorithm(s) to compare the parameters associated with thetextual data prompt 108 to additional parameters associated with widgetsstored in a storage engine 119. As explained in relation to FIG. 1,numerous algorithms are contemplated and the list given for FIG. 1 isnon-exhaustive.

In some examples, the algorithm may perform a one-on-one comparison ofthe parameters associated with the textual data prompt 108 to theadditional parameters associated with widgets. For example, the proxyserver 110 may compare the neutral exercise topic and neutral intent ofthe textual data prompt 108 to additional parameters associated with afirst widget 118. The proxy server 110 may also compare the keywords“swimming” and “basketball” associated with the textual data prompt 108to the keyword “sports” associated with the first widget 118. Based onthese comparisons, the proxy server 110 may identify a first matchbetween the parameters associated with the textual data prompt 108 andthe additional parameters associated with the first widget 118.Moreover, the proxy server 110 may compare the neutral exercise topic,the neutral intent, and keywords of the textual data prompt 108 toadditional parameters associated with a second widget of the widgets.Based on these comparisons, the proxy server 110 may identify a secondmatch between the parameters associated with the textual data prompt 108and the additional parameters associated with the second widget. Theproxy server 110 may then identify a confidence threshold associatedwith the first match and another confidence threshold associated withthe second match.

FIG. 2B illustrates a schematic diagram showcasing generation of a firstwidget embedded with a graphical user interface (GUI) on a secondcomputing device, in accordance with embodiments of the presentinvention.

A schematic diagram 200B includes a second computing device 103associated with a second user 221. The second user 221 may interact withthe GUI 104 of the second computing device 103 via a device. Responsiveto execution of the steps of FIG. 2A, the proxy server 110 (of FIG. 1)may determine that the percentage of the first match exceeds aconfidence threshold, whereas the percentage of the second match failsto exceed the confidence threshold. Responsive to this determination,the proxy server 110 may generate the first widget 231 embedded withinthe GUI 104 or in concatenation to the GUI 104 on the second computingdevice 103.

The first widget 231 may include one or more responses to the textualdata prompt 108 (of FIG. 1). It should be appreciated that in someexamples, the first widget 231 may only include two responses to thetextual data prompt 108. It should be appreciated that in otherexamples, the first widget 231 may include multiple responses to thetextual data prompt 108. In the illustrative example, the first widget231 may include a first response (e.g., “Go Swimming”) 233 to thetextual data prompt 108 and a second response (e.g., “Play Basketball”)234 to the textual data prompt 108.

Moreover, a size of the first widget 231, a shape of the first widget231, and a color of the first widget 231 is based on the confidencethreshold. For example, a greater confidence threshold results in: alarger size of the first widget 231, the shape of the first widget 231having more smooth or rounded sides than edges, and the color of thefirst widget 231 comprising one or more: light hues, light tints, lightshades, and/or light tones. Further, a lower confidence thresholdresults in: a smaller size of the first widget 231, the shape of thefirst widget 231 having more edges than smooth or rounded sides, and thecolor of the first widget 231 comprising one or more: dark hues, darktints, dark shades, and/or dark tones. It should be appreciated that theshape of the first widget 231 or the second widget may include: apolygonal shape or a curved shape, or may alternatively include one ormore polygonal sides or one or more curved sides.

The one or more: light hues, light tints, light shades, and/or lighttones are defined by a high color saturation, or a high intensity of oneor more colors of the first widget 231. For example, these one or morelight hues, light tints, light shades, and/or light tones may include:white, gray (e.g., platinum, silver, etc.), magenta (e.g., folly,amaranth pink, fuschia, etc.), pink, brown (e.g., amber, wheat, desertsand, beige, fawn, tan, khaki, etc.), orange (e.g., apricot,peach-yellow, sunset, gold, champagne, papaya whip, peach, peach-orange,etc.), yellow (e.g., buff, cream, lemon chiffon, yellow, flax, etc.),blue (e.g., celeste, baby blue, electric blue, cyan, etc.), etc. Itshould be appreciated that this list is non-exhaustive and additionalcolors are contemplated.

The one or more: dark hues, dark tints, dark shades, and/or dark tonesare defined by a low color saturation (e.g., the expression of abandwidth of light from a source), or a low intensity of one or morecolors of the first widget 231. For example, these one or more darkhues, dark tints, dark shades, and/or dark tones may include: gray(including charcoal, purple taupe, slate gray, gunmetal, etc.), black(including bistre, black bean, eerie black, licorice, midnight blue,onyx, outer space, raisin black etc.), magenta (including amaranth,amaranth purple, crimson, eggplant, folly, quinacridone magenta,raspberry, red-violet, magenta haze, plum, mulberry, telemagenta, etc.),pink (including carmine, crimson, ruby, etc.), red (including blood red,burgundy, carmine, dark red, wine, tyrian purple, maroon, oxblood,turkey red, etc.), brown (including auburn, seal brown, wenge, bistre,chestnut, chocolate, coffee, taupe, umber, etc.), blue (includingfederal blue, ultramarine, oxford blue, indigo, cobalt blue, dark blue,etc.), green (including Brunswick green, phthalo green, dark green,office green, midnight green, castleton green, etc.), etc. It should beappreciated that this list is non-exhaustive and additional colors arecontemplated.

Assuming the first widget 231 has a higher confidence threshold than asecond widget, the first widget 231, in comparison to the second widget,will have: a larger size and coloring including one or more: light hues,light tints, light shades, and/or light tones. Further, in this case,the second widget, as compared to the first widget 231, will have asmaller size and coloring including one or more: dark hues, dark tints,dark shades, and/or dark tones. Moreover, the first widget 231 will havemore smooth or rounded sides than edges and the second widget will havemore edges than smooth or rounded sides.

FIG. 2C illustrates a schematic diagram include display of a firstresponse as textual data embedded with a graphical user interface (GUI)on a first computing device, in accordance with embodiments of thepresent invention.

A schematic diagram 200C includes a first computing device 102associated with a first user 220. The first user 220 may interact with aGUI 104 of the first computing device 102 via a device. Based on thematch between the parameters of the textual data prompt 108 andadditional parameters associated with widgets exceeding the confidencethreshold, as described supra, the proxy server 110 (of FIG. 1) maygenerate the first widget 231 having a larger size, more rounded orsmooth sides than edges, and lighter-coloring. Based on the enhancedconfidence in the accuracy of the generated widget, the proxy server 110may then receive a selection of the first response 233 from the firstwidget 231 as a selected response to the textual data prompt 108 (ofFIG. 1) by the second user 222. Then, the proxy server 110 may displaythe first response 233 as textual data embedded within the GUI 104 ofthe second computing device 103.

In some examples, a size and a color of the text in the first response233 mirrors the size and the color of the first widget 231. For example,as the first match achieved and surpassed the confidence threshold, thefirst widget 231 was generated with the following characteristics: largewidget size, a coloring having one or more: light hues, light tints,light shades, and/or light tones, and more smooth sides or edges. Inthis example, the first response 233 (e.g., “Go swimming”) will beembedded within the GUI 104 with the following characteristics: a largefont size and one or more light hues, light tints, light shades, and/orlight tones in the coloring of the text. In further examples, ananimation or effects associated with the textual data of the firstresponse 233 mirrors and is identical to an animation or the effectsassociated with the first widget 231.

In additional examples, when the second user 222 views the first widget231, if the first widget 231 has a smaller size, is of darker coloring,and contains more edges than smooth sides in its shape, conveying alower accuracy associated with the confidence threshold, the second user222 may fail to select one of the first response 233 or the secondresponse 234. The proxy server 110 may fail to receive the selection ofthe first response 233 or the second response 234 to the textual dataprompt 108. The proxy server 110 may then prompt the second user 221 viaa notification within the GUI on the second computing device 103 toinput a textual response. Once the proxy server 110 receives the textualresponse from the second user 221, the proxy server 110 may transmit thetextual response to the first computing device 102 for display withinthe GUI.

In further examples, when a third user engages in another textual dataprompt associated with the same topic of the textual data prompt 108 andthe same intent of the textual data prompt 108, the proxy server 110 mayutilize one or more additional algorithms, such as a reinforcementlearning algorithm, to automatically generate the first widget 231embedded within a third computing device and associated with the thirduser.

FIG. 3 is a is a flowchart of a process executed by a server toautomatically convert a textual data prompt embedded within a GUI to awidget, in accordance with embodiments of the present invention.

The process 300 of FIG. 3 may be implemented by a service, a system, aserver, engine(s) of a computing device or computer system, orapplication(s) of a computing device or computer system. The process ofFIG. 3 begins at a step 302. The step 302 is followed by a step 304,where a server (such as the proxy server 110 of FIG. 1) receives, from afirst computing device, a textual data prompt. The step 304 is followedby a step 306, where the server parses the textual data prompt toidentify parameters. The parameters are associated with the textual dataprompt and include at least a topic of the textual data prompt and anintent associated with the textual data prompt. In some examples, theparameters may further include: keywords of the textual data prompt,interrogative words of the textual data prompt, a sender of the textualdata prompt, a recipient of the textual data prompt, and combinationsthereof.

The step 306 is followed by a step 308, where the server compares theparameters of the textual data prompt to additional parametersassociated with widgets. The widgets may be stored in a database or aserver (e.g., in the storage engine 119 of the proxy server 110). Insome examples, the server performs this step via one or more algorithms.In some examples, the algorithm(s) may include a pattern matchingalgorithm, a linguistic algorithm, a reinforcement learning algorithm,and combinations thereof. In further examples, the algorithm(s) mayperform a one-on-one comparison of the parameters associated with thetextual data prompt to the additional parameters associated with thewidgets.

The step 308 is followed by a step 310, where the server identifies afirst match between the parameters and the additional parametersassociated with a first widget of the widgets. The server may furtheridentify a second match between the parameters and the additionalparameters associated with a second widget of the widgets. The step 310is followed by a step 312, where the server determines a percentage ofthe first match as exceeding a confidence threshold. The server alsodetermines a percentage of the second match as failing to exceed theconfidence threshold.

The step 312 is followed by a step 314, where the server generates thefirst widget embedded within the GUI on a second computing device inresponse to the step 312. The first widget includes responses to thetextual data prompt, such as a first response to the textual data promptand a second response to the textual data prompt. Moreover, a size, ashape, and a color of the first widget is based on the confidencethreshold. In further examples, the first widget is generated inreal-time.

The step 314 is followed by a step 316, where the server receives aselection of the first response as a selected response to the textualdata prompt by a user associated with the second computing device. Inresponse to this, the server displays the first response as textual dataembedded within the GUI of the first computing device. A size and acolor of the textual data mirrors and is identical to the size and thecolor of the first widget. In additional examples, an animation of thetextual data mirrors the animation of the first widget.

In some examples, the server may fail to receive the selection, by theuser associated with the second computing device, of the selectedresponse to the textual data prompt. The server may then prompt theuser, via one or more notifications within the GUI on the secondcomputing device, to input a textual response to the textual dataprompt. Responsive to receiving, from the user, the textual response,the server may transmit the textual response to the first computingdevice for display within the GUI.

In additional examples, the server may utilize a reinforcement learningalgorithm such that when a third user engages in another textual dataprompt associated with the topic of the textual data prompt and theintent of the textual data prompt, automatically generating the firstwidget embedded within a third computing device associated with thethird user.

FIG. 4 is a block diagram of a computing device included within thesystem of FIG. 1 and that implements the processes of FIG. 3, inaccordance with embodiments of the present invention.

In some embodiments, the present invention may be a server, a service, amethod, a system, and/or a computer program product. For example, aserver (e.g., a proxy server 110 of FIG. 1 or a cognitive analysisserver) may be configured to automatically convert a textual data prompt108 (of FIG. 1) embedded within a GUI 104 (of FIG. 1) to a widget (e.g.,the first widget 118 of FIG. 1).

In an example, basic configuration 402, the computing device 400includes one or more processors 404 and a system memory 406. A memorybus 408 is used for communicating between the processor 404 and thesystem memory 406. The basic configuration 402 is illustrated in FIG. 4by those components within the inner dashed line.

Depending on the desired configuration, the processor 404 may be of anytype, including but not limited to a microprocessor (μP), amicrocontroller (C), a digital signal processor (DSP), or anycombination thereof. The processor 404 may include one more levels ofcaching, such as a level cache memory 412, an example processor core414, and registers 416, among other examples. The example processor core414 may include an arithmetic logic unit (ALU), a floating point unit(FPU), a digital signal processing core (DSP Core), or any combinationthereof. An example memory controller 418 is used with the processor404, or in some implementations the example memory controller 418 is aninternal part of the processor 404.

Depending on the desired configuration, the system memory 406 may be ofany type including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. The system memory 406 includes an operating system 420, one ormore engines (such as a cognitive analysis engine 423 and/or a storageengine 426) and program data 424, among other engines/modules. In someembodiments, the cognitive analysis engine 423 may be a cognitiveanalysis application or a cognitive analysis service.

The cognitive analysis engine 423 may receive, from a first computingdevice 102, the textual data prompt, parse the textual data prompt 108to identify parameters that include at least a topic of the textual dataprompt 108 and an intent associated with the textual data prompt 108;execute an algorithm to compare the parameters of the textual dataprompt 108 to additional parameters associated with widgets; identify afirst match between the parameters and the additional parametersassociated with a first widget 118 of the widgets; and identify a secondmatch between the parameters and the additional parameters associatedwith a second widget of the widgets. In response to determining that apercentage of the first match exceeds a confidence threshold and apercentage of the second match fails to exceed the confidence threshold,the cognitive analysis engine 423 may generate the first widget 118embedded within the GUI 104 on a second computing device 103. The firstwidget 118 may include one or more responses to the textual data prompt108. Moreover, a size, a shape, and a color of the first widget 118 isbased on the confidence threshold. The cognitive analysis engine 423 maythen receive a selection of the first response 233 as a selectedresponse to the textual data prompt 108 by a user associated with thesecond computing device 103. The cognitive analysis engine 423 may thendisplay the first response 233 as textual data embedded within the GUI104 of the first computing device 102.

The computing device 400 may have additional features or functionality,and additional interfaces to facilitate communications between the basicconfiguration 402 and any desired devices and interfaces. For example, abus/interface controller 430 is used to facilitate communicationsbetween the basic configuration 402 and data storage devices 432 via astorage interface bus 434. The data storage devices 432 may be one ormore removable storage devices 436, one or more non-removable storagedevices 438, or a combination thereof. Examples of the removable storageand the non-removable storage devices include magnetic disk devices suchas flexible disk drives and hard-disk drives (HDD), optical disk drivessuch as compact disk (CD) drives or digital versatile disk (DVD) drives,solid state drives (SSD), and tape drives, among others. Examplecomputer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information, such as computer-readable instructions, data structures,program modules, or other data.

In some embodiments, an interface bus 440 facilitates communication fromvarious interface devices (e.g., one or more output devices 442, one ormore peripheral interfaces 444, and one or more communication devices466) to the basic configuration 402 via the bus/interface controller430. Some of the one or more output devices 442 include a graphicsprocessing unit 448 and an audio processing unit 450, which isconfigured to communicate to various external devices such as a displayor speakers via one or more A/V ports 452. The one or more peripheralinterfaces 444 includes a serial interface controller 454 or a parallelinterface controller 456, which are configured to communicate withexternal devices, such as input devices (e.g., keyboard, mouse, pen,voice input device, touch input device, etc.) or other peripheraldevices (e.g., printer, scanner, etc.) via one or more I/O ports 458. Anexample of the one or more communication devices 466 include a networkcontroller 460, which are arranged to facilitate communications with oneor more other computing devices 462 over a network communication linkvia one or more communication ports 464. The one or more other computingdevices 462 include servers, mobile devices, and comparable devices.

The network communication link is an example of a communication media.The communication media are typically embodied by the computer-readableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave or other transportmechanism, and include any information delivery media. A “modulated datasignal” is a signal that has one or more of its characteristics set orchanged in such a manner as to encode information in the signal. By wayof example, and not limitation, the communication media include wiredmedia, such as a wired network or direct-wired connection, and wirelessmedia, such as acoustic, radio frequency (RF), microwave, infrared (IR),and other wireless media. The term “computer-readable media,” as usedherein, includes both storage media and communication media.

The system memory 406, the removable storage devices 436, and thenon-removable storage devices 438 are examples of the computer-readablestorage media. The computer-readable storage media is a tangible devicethat can retain and store instructions (e.g., program code) for use byan instruction execution device (e.g., the computing device 400). Anysuch, computer storage media is part of the computing device 400.

Aspects of the present invention are described herein regardingschematic diagrams, flowchart illustrations, and/or block diagrams ofmethods, apparatus (systems), and computer program products according toembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by the computer-readable instructions (e.g., the programcode).

The computer-readable instructions are provided to the processor 404 ofa general purpose computer, special purpose computer, or otherprogrammable data processing apparatus (e.g., the computing device 400)to produce a machine, such that the instructions, which execute via theprocessor 404 of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks. Thesecomputer-readable instructions are also stored in a computer-readablestorage medium that can direct a computer, a programmable dataprocessing apparatus, and/or other devices to function in a particularmanner, such that the computer-readable storage medium havinginstructions stored therein comprises an article of manufactureincluding instructions which implement aspects of the function/actspecified in the flowchart and/or block diagram block or blocks.

The computer-readable instructions (e.g., the program code) are alsoloaded onto a computer (e.g. the computing device 400), anotherprogrammable data processing apparatus, or another device to cause aseries of operational steps to be performed on the computer, the otherprogrammable apparatus, or the other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, the other programmable apparatus, or the other deviceimplement the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The computing device 400 may be implemented as a part of a generalpurpose or specialized server, mainframe, or similar computer thatincludes any of the above functions. The computing device 400 may alsobe implemented as a personal computer including both laptop computer andnon-laptop computer configurations.

Another embodiment of the invention provides a method that performs theprocess steps on a subscription, advertising and/or fee basis. That is,a service provider, such as a Solution Integrator, can offer to create,maintain, and/or support, etc. a process of automatically converting atextual data prompt embedded within a graphical user interface (GUI) toa widget. In this case, the service provider can create, maintain,and/or support, etc. a computer infrastructure that performs the processsteps for one or more customers. In return, the service provider canreceive payment from the customer(s) under a subscription and/or feeagreement, and/or the service provider can receive payment from the saleof advertising content to one or more third parties.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers or ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A server configured to execute a method forautomatically converting a textual data prompt embedded within agraphical user interface (GUI) to a widget, said method comprising:comparing parameters of a textual data prompt to additional parametersassociated with widget, said textual data prompt having been previouslyreceived from a first computing device; identifying a first matchbetween the parameters and the additional parameters associated with afirst widget of the widgets; identifying a second match between theparameters and the additional parameters associated with a second widgetof the widgets; in response to a determination that a percentage of thefirst match exceeds a confidence threshold and a percentage of thesecond match fails to exceed the confidence threshold, generating thefirst widget embedded within the GUI on a second computing device,wherein the first widget includes a first response to the textual dataprompt and a second response to the textual data prompt, and wherein asize, a shape, and a color of the first widget is based on theconfidence threshold; receiving a selection of the first response as aselected response to the textual data prompt by a user associated withthe second computing device; and displaying the first response astextual data embedded within the GUI of the first computing device. 2.The server of claim 1, wherein the method further comprises: identifyingthe color of the second widget associated with the second match asincluding one or more: dark hues, dark tints, dark shades, and/or darktones.
 3. The server of claim 2, wherein the method further comprises:identifying the shape of the first widget as having more edges thanround or smooth sides.
 4. The server of claim 1, wherein the methodfurther comprises: identifying the color of the first widget asincluding one or more light hues, light tints, light shades, and/orlight tones.
 5. The server of claim 4, wherein the method furthercomprises: identifying the shape of the first widget as having moreround or smooth sides than edges.
 6. The server of claim 1, wherein thesize of the second widget associated with the second match is smallerthan the size of the first widget associated with the first match. 7.The server of claim 1, wherein a size and a color of the textual datamirrors the size and the color of the first widget.
 8. The server ofclaim 1, wherein the method further comprises: utilizing an algorithm toperform the parsing, the comparing, the identifying, and the generatingsteps.
 9. The server of claim 8, wherein the algorithm is selected fromthe group comprising: a pattern matching algorithm, a linguisticalgorithm, a reinforcement learning algorithm, and combinations thereof.10. A method for automatically converting a textual data prompt embeddedwithin a graphical user interface (GUI) to a widget, said methodcomprising: comparing parameters of a textual data prompt to additionalparameters associated with widget, said textual data prompt having beenpreviously received from a first computing device; identifying a firstmatch between the parameters and the additional parameters associatedwith a first widget of the widgets; identifying a second match betweenthe parameters and the additional parameters associated with a secondwidget of the widgets; in response to a determination that a percentageof the first match exceeds a confidence threshold and a percentage ofthe second match fails to exceed the confidence threshold, generatingthe first widget embedded within the GUI on a second computing device,wherein the first widget includes a first response to the textual dataprompt and a second response to the textual data prompt, and wherein asize, a shape, and a color of the first widget is based on theconfidence threshold; receiving a selection of the first response as aselected response to the textual data prompt by a user associated withthe second computing device; and displaying the first response astextual data embedded within the GUI of the first computing device. 11.The method of claim 10, further comprising: utilizing an algorithm toperform the parsing, the comparing, the identifying, and the generatingsteps, wherein the algorithm is selected from the group comprising: apattern matching algorithm, a linguistic algorithm, a reinforcementlearning algorithm, and combinations thereof.
 12. The method of claim10, further comprising: failing to receive the selection, by the userassociated with the second computing device, of the selected response tothe textual data prompt; prompting the user, via a notification withinthe GUI on the second computing device, to input a textual response tothe textual data prompt; receiving, from the user, the textual response;and transmitting the textual response to the first computing device fordisplay within the GUI.
 13. The method of claim 10, further comprising:identifying the color of the second widget associated with the secondmatch as including one or more: dark hues, dark tints, dark shades,and/or dark tones; and identifying the shape of the second widget ashaving more edges than round or smooth sides.
 14. The method of claim10, further comprising: identifying the color of the first widget asincluding one or more: light hues, light tints, light shades, and/orlight tones; and identifying the shape of the first widget as havingmore round or smooth sides than edges.
 15. The method of claim 10,wherein said comparing performs a one-on-one comparison of theparameters associated with the textual data prompt to the additionalparameters associated with the widgets.
 16. A computer program product,comprising one or more computer-readable hardware storage devices havingcomputer-readable program code stored therein, the computer-readableprogram code containing instructions executable by one or moreprocessors of a computer system to implement a method to automaticallyconvert a textual data prompt embedded within a graphical user interface(GUI) to a widget, said method comprising: comparing parameters of atextual data prompt to additional parameters associated with widget,said textual data prompt having been previously received from a firstcomputing device; identifying a first match between the parameters andthe additional parameters associated with a first widget of the widgets;identifying a second match between the parameters and the additionalparameters associated with a second widget of the widgets; in responseto a determination that a percentage of the first match exceeds aconfidence threshold and a percentage of the second match fails toexceed the confidence threshold, generating the first widget embeddedwithin the GUI on a second computing device, wherein the first widgetincludes a first response to the textual data prompt and a secondresponse to the textual data prompt, and wherein a size, a shape, and acolor of the first widget is based on the confidence threshold;receiving a selection of the first response as a selected response tothe textual data prompt by a user associated with the second computingdevice; and displaying the first response as textual data embeddedwithin the GUI of the first computing device.
 17. The computer programproduct of claim 16, wherein the first widget is selected from the groupcomprising: a date selection widget, a response selection widget, a timeselection widget, an event selection widget, and a location selectionwidget.
 18. The computer program product of claim 16, wherein the firstwidget is generated in real-time.
 19. The computer program product ofclaim 16, wherein the method further comprises: utilizing areinforcement learning algorithm such that when a third user engages inanother textual data prompt associated with a topic included within theparameters of the textual data prompt and an intent included within theparameters of the textual data prompt, automatically generating thefirst widget embedded within a third computing device associated withthe third user.
 20. The computer program product of claim 16, wherein ananimation of the textual data mirrors the animation of the first widget.